package com.smh.demo1.a35;

import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.AnnotationConfigUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.GenericApplicationContext;

/**
 * @author shiminghui
 * @date 2025/5/9 17:25
 * @description: TODO
 */
public class A35_2 {
    public static void main(String[] args) {

        GenericApplicationContext context = new GenericApplicationContext();
        // 注册一些常用的BeanFactory和Bean后处理器
        AnnotationConfigUtils.registerAnnotationConfigProcessors(context);

        // spring的自动配置,本质上就是@import注解,@EnableAutoConfiguration内部有一个@Import(AutoConfigurationImportSelector.class)
        // 这个AutoConfigurationImportSelector.class会加载spring.factories文件,key就是autoConfiguration.class的全类名
        // 那么如果想让我们的自动配置类生效,那么只需要在spring.factories文件中以autoConfiguration.class的全类名作为key,
        // value就是我们自定义的自动配置类,这样spring启动的时候就会加载我们自定义的配置类了


    }

    @AutoConfiguration
    static class AutoConfig {
        @Bean
        public Bean1 bean1() {
            return new Bean1();
        }

        @Bean
        public Bean2 bean2() {
            return new Bean2();
        }
    }

    static class Bean1 {

    }

    static class Bean2 {

    }
}
